home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 51 / Amiga Format CD51 (2000-03-10)(Future Publishing)(GB)[!][issue 2000-04].iso / -in_the_mag- / banging_the_metal / qdos / qdos4amiga2 / romsrc / sys / procs2_asm < prev    next >
Text File  |  2000-01-03  |  2KB  |  114 lines

  1. */beginfile PROCS2_asm
  2. ; --------------------------------------------------------------
  3. ; PROCS2_asm - BASIC bits
  4. ;        - last modified 03/11/97
  5. ; QDOS-Amiga sources by Rainer Kowallik
  6. ;    ...some changes by Mark J Swift
  7. ; --------------------------------------------------------------
  8. L064E2:
  9. BAS_BAUD:
  10.     JSR    GET_INT4(PC)    ; modify BSR SEA_PARA(PC)
  11.                 ; search for parameter
  12.     BNE.S    L064F6
  13.     MOVE.L    0(A6,A1.L),D1    ; modify MOVE.W 0(A6,A1.L),D1
  14.     MOVEQ    #$12,D0        ; MT.BAUD sets bautrate
  15.                 ; (D1.W)
  16.     TRAP    #1
  17.     TST.L    D0
  18.     BMI.S    L064F8
  19.     MOVEQ    #0,D0
  20. L064F6    RTS
  21. L064F8    MOVEQ    #-15,D0        ; bad parameter
  22.     RTS
  23. L064FC    ; displacements for parameters of BEEP
  24.     DC.W    6
  25.     DC.W    0
  26.     DC.W    2
  27.     DC.W    4
  28.     DC.W    8
  29.     DC.W    10
  30.     DC.W    14
  31.     DC.W    12
  32. L0650C    ; Beep error
  33.     ADD.L    D3,D3
  34.     ADD.L    D3,$58(A6)    ; Arithmetic stack
  35. L06512    ADDA.W    #$18,A7
  36.     MOVEM.L    (A7)+,D4-D7/A3-A5
  37.     TST.L    D0
  38.     RTS
  39. BEEP:
  40.     JSR    CA_GTINT(PC)    ;*/undomodify BSR CA_GTINT
  41.     MOVEM.L    D4-D7/A3-A5,-(A7)
  42.     ADDA.W    #$FFE8,A7
  43.     MOVEA.L    A7,A3
  44.     BNE.S    L0650C
  45.     MOVEQ    #-15,D0        ; Bad parameter
  46.     CMPI.W    #0,D3
  47.     BEQ.S    L065A8
  48.     CMPI.W    #1,D3
  49.     BEQ.S    L0650C
  50.     CMPI.W    #3,D3
  51.     BEQ.S    L0650C
  52.     CMPI.W    #4,D3
  53.     BEQ.S    L0650C
  54.     CMPI.W    #8,D3
  55.     BGT.S    L0650C
  56.     LEA    L064FC(PC),A5
  57.     MOVEQ    #1,D2
  58. L06554    MOVE.W    0(A6,A1.L),D0
  59.     CMPI.W    #2,D2
  60.     BEQ.S    L06564
  61.     CMPI.W    #3,D2
  62.     BNE.S    L06566
  63. L06564    ADDQ.W    #1,D0
  64. L06566:
  65.     ROR.W    #8,D0
  66.     JSR    L065C0(PC)    ;*/undomodify BSR.S L065C0
  67.                 ;*/undomodify nop
  68.     ADDA.W    #$0002,A1
  69.     CMP.W    D3,D2
  70.     BLE.S    L06554
  71.     CMPI.W    #$0003,D2
  72.     BEQ.S    L06582
  73. L0657A:
  74.     MOVEQ    #0,D0
  75.     CMPI.W    #$0008,D2
  76.     BGT.S    L06588
  77. L06582:
  78.     JSR    L065C0(PC)    ;*/undomodify BSR.S L065C0
  79.                 ;*/undomodify nop
  80.     BRA.S    L0657A
  81. L06588:
  82.     MOVE.B    #$0A,(A3)
  83.     MOVE.B    #$10,1(A3)
  84.     MOVE.L    #$4444AA66,2(A3)
  85.     MOVE.B    #1,$16(A3)
  86.     MOVEQ    #$11,D0        ; MT.IPCOM send command (A3)
  87.                 ; to IPC
  88.     TRAP    #1
  89.     BRA    L0650C
  90. L065A8    ; stop beeper
  91.     MOVE.B    #$0B,(A3)
  92.     MOVE.B    #0,1(A3)
  93.     MOVE.B    #1,6(A3)
  94.     MOVEQ    #$11,D0        ; MT.IPCOM send command (A3)
  95.                 ; to IPC
  96.     TRAP    #1
  97.     BRA    L06512
  98. L065C0    MOVEA.W    (A5)+,A4
  99.     MOVE.W    D0,$06(A3,A4.W)
  100.     ADDQ.W    #1,D2
  101.     RTS
  102. BAS_CALL:
  103.     JSR    CA_GTLIN(PC)    ;*/undomodify BSR CA_GTLIN
  104.     BNE.S    L065E4
  105.     LSL.L    #2,D3
  106.     BEQ.S    L065E2
  107.     ADD.L    D3,BV_RIP(A6)    ;arith stack
  108.     MOVE.L    0(A6,A1.L),-(A7)
  109.     MOVEM.L    4(A6,A1.L),D1-D7/A0-A5
  110. L065E2    MOVEQ    #-15,D0        ; bad parameter
  111. L065E4    RTS
  112. ; --------------------------------------------------------------
  113. ;*/endfile
  114.